From: Claudio Cambra Date: Mon, 20 Jan 2025 02:34:17 +0000 (+0800) Subject: Override config chunk sizing values with max chunk size retrieved from capabilities X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~2^2~117^2~10 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=d7c5435e4277e25569792f917464a6bc66927075;p=nextcloud-desktop.git Override config chunk sizing values with max chunk size retrieved from capabilities Signed-off-by: Claudio Cambra --- diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index bcb3ed70f..7e30d02f3 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -1144,18 +1144,24 @@ SyncOptions Folder::initializeSyncOptions() const { SyncOptions opt; ConfigFile cfgFile; + const auto account = _accountState->account(); auto newFolderLimit = cfgFile.newBigFolderSizeLimit(); opt._newBigFolderSizeLimit = newFolderLimit.first ? newFolderLimit.second * 1000LL * 1000LL : -1; // convert from MB to B opt._confirmExternalStorage = cfgFile.confirmExternalStorage(); opt._moveFilesToTrash = cfgFile.moveToTrash(); opt._vfs = _vfs; - opt._parallelNetworkJobs = _accountState->account()->isHttp2Supported() ? 20 : 6; + opt._parallelNetworkJobs = account->isHttp2Supported() ? 20 : 6; // Chunk V2: Size of chunks must be between 5MB and 5GB, except for the last chunk which can be smaller + const auto capsMaxChunkSize = account->capabilities().maxChunkSize(); + const auto validCapsChunkSize = capsMaxChunkSize <= 0; + const auto maxChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.maxChunkSize(); + const auto preferredChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.chunkSize(); + opt.setMinChunkSize(cfgFile.minChunkSize()); - opt.setMaxChunkSize(cfgFile.maxChunkSize()); - opt._initialChunkSize = ::qBound(opt.minChunkSize(), cfgFile.chunkSize(), opt.maxChunkSize()); + opt.setMaxChunkSize(maxChunkSize); + opt._initialChunkSize = ::qBound(opt.minChunkSize(), preferredChunkSize, opt.maxChunkSize()); opt._targetChunkUploadDuration = cfgFile.targetChunkUploadDuration(); opt.fillFromEnvironmentVariables();